class Parent {
  // 3.静态属性和静态方法，只能通过类Parent调用，实例是无法使用的
  static song() {
    return '爱唱歌'
  } // es6中只支持静态方法
  static address = 'CHINA' // es7中新增支持了静态属性

  constructor(name) {
    // 1.给实例加私有属性
    this.name = name
    this.age = 18
    this.eat = function () {}
  }
  // 不需要通过传参赋值的话，可以写到外面也同样是给实例添加私有属性/方法 es7新增
  x = 100

  // 2.给实例加私有方法
  // 如果要给原型加方法，要通过 Parent.prototype.getX = function(){}
  getX() {}
}

// 4.如果想给类添加原型属性，需要在Parent原型上添加，在class内暂不支持
Parent.prototype.wegith = '50kg'

class Child extends Parent {
  constructor(name) {
    super(name) // 相当于于我们上面的call继承
    this.y = 200
  }
  getY() {}
}

let p1 = new Parent('父')
let c1 = new Child('子')
console.log(p1)
console.log(c1)
